home *** CD-ROM | disk | FTP | other *** search
- #
- # All Terrain Vehicle - ATV (Trucktoron)
- #
- # This model is based on the Polaris Trail Boss ATV.
- #
- # Written by:
- #
- # Eran Yahav s2556713@csc
- # Zviki Cohen zviki@tx
- #
- #
- # Special thanks goes to...
- #
- # Sela Gershony - for sketching the model
- # Noy Cohen - for taking pictures of the model
- #
-
- resolution = 30;
-
- iritstate( "Coplanar", TRUE);
-
-
- engineSide = poly(list(
- vector( 0.0, 0.0, 0.0 ),
- vector( 0.0, 1.0, 0.0 ),
- vector( 3.0, 1.3, 0.0 ),
- vector( 3.1, 0.7, 0.0 ),
- vector( 2.6, 0.7, 0.0 ),
- vector( 2.4, 0.0, 0.0 )),
- FALSE);
-
- engine = extrude( engineSide, vector (0,0,-1));
-
-
- seatSide =
-
- cbspline(3, list (
- vector(0.0, 1.0, 0.0 ) ,
- vector(0.0, 1.0, 0.0 ) ,
- vector(3.0, 1.3, 0.0 ) ) ,
- list(KV_OPEN)) +
-
- cbspline(3, list (
- vector(3.0, 1.3, 0.0 ) ,
- vector(3.0, 1.3, 0.0 ) ,
- vector(3.0, 2.0, 0.0 ) ) ,
- list(KV_OPEN)) +
-
- cbspline(3, list (
- vector(3.0, 2.0, 0.0 ) ,
- vector(1.8, 1.8, 0.0 ) ,
- vector(1.1, 2.0, 0.0 ) ,
- vector(0.5, 2.6, 0.0 ) ) ,
- list(KV_OPEN) ) +
-
- cbspline(3, list (
- vector( 0.5, 2.6, 0.0 ) ,
- vector(-0.1, 2.4, 0.0 ) ,
- vector(-0.8, 2.1, 0.0 ) ,
- vector(-1.9, 1.5, 0.0 ) ) ,
- list(KV_OPEN) ) +
-
- cbspline(3, list (
- vector(-1.9, 1.5, 0.0 ) ,
- vector(-0.8, 1.45, 0.0 ) ,
- vector(-0.4, 1.4, 0.0 ) ,
- vector( 0.0, 1.0, 0.0 ) ) ,
- list(KV_OPEN) )
- ;
-
- seat = list (
- extrude( seatSide, vector (0,0,-1)) ,
- boolone( seatSide ) ,
- ( boolone( seatSide ) * trans( vector ( 0, 0, -1) ) ) ) ;
-
-
- body = list (seat, engine);
-
-
- bottomCurve = cbspline( 3,
- list (
- vector( -0.37600, 0.56600, 0.0000 ) ,
- vector( -0.24400, 0.56200, 0.0000 ) ,
- vector( -0.21200, 0.52600, 0.0000 ) ,
- vector( -0.29200, 0.45000, 0.00000 ) ,
- vector( -0.28800, 0.43000, 0.00000 ) ,
- vector( -0.18400, 0.26800, 0.00000 ) ,
- vector( -0.16400, 0.26000, 0.00000 ) ,
- vector( 0.02400, 0.22800, 0.00000 ) ,
- vector( 0.06000, 0.11200, 0.00000 ) ,
- vector( 0.06000 ,-0.20400, 0.00000 ) ,
- vector( -0.00800 ,-0.26400, 0.00000 ) ,
- vector( -0.22000 ,-0.26400, 0.00000 ) ,
- vector( -0.27200 ,-0.28400, 0.00000 ) ,
- vector( -0.30000 ,-0.52400, 0.00000 ) ) ,
- list(KV_OPEN));
-
- bottom1 = bottomCurve * scale(vector(0.8,1.0,1.0));
- bottom2 = bottom1 * roty(180) * trans(vector(-0.6,0,0));
- bottomSide = bottom2 + (-bottom1);
- bottomClose = ruledsrf ( bottom1, bottom2 );
-
- bottom = list (
- extrude( bottomSide, vector (0,0,0.01)) ,
- bottomClose ,
- (bottomClose * trans(vector(0,0,0.01))) );
-
- bottom = bottom * roty(90) * rotz(90) * scale(vector(4.5,3.5,3.5))
- * trans(vector(1.21,0,-1.549));
-
- # front wings
-
- fwCrv1 = cbspline(3, list (
- vector(-1.9, 1.5, 0.0 ) ,
- vector(-0.8, 1.45, 0.0 ) ,
- vector(-0.4, 1.4, 0.0 ) ,
- vector( 0.0, 1.0, 0.0 ) ,
- vector( 0.0, 1.0, 0.0 ) ,
- vector( 0.0, 0.0, 0.0 ) ) , list(KV_OPEN));
-
- fwCrv2 = cbspline(3, list (
- vector(-1.9, 1.6, 0.3 ) ,
- vector(-0.8, 1.95, 0.3 ) ,
- vector(-0.4, 1.9, 0.3 ) ,
- vector(-0.2, 1.5, 0.3 ) ,
- vector( 0.0, 0.9, 0.3 ) ,
- vector( 0.2, 0.5, 0.3 ) ,
- vector( 0.3, 0.0, 0.3 ) ) , list(KV_OPEN));
-
- fwCrv3 = cbspline(3, list (
- vector(-1.9, 1.6, 0.7 ) ,
- vector(-0.8, 1.95, 0.7 ) ,
- vector(-0.4, 1.9, 0.7 ) ,
- vector(-0.2, 1.5, 0.7 ) ,
- vector( 0.0, 0.9, 0.7 ) ,
- vector( 0.2, 0.5, 0.7 ) ,
- vector( 0.3, 0.0, 0.7 ) ) , list(KV_OPEN));
-
- fwCrv4 = cbspline(3, list (
- vector(-1.9, 1.5, 1.0 ) ,
- vector(-0.8, 1.45, 1.0 ) ,
- vector(-0.4, 1.4, 1.0 ) ,
- vector( 0.0, 0.0, 1.0 ) ) , list(KV_OPEN));
-
-
- fwCrvs1 = list(fwCrv1, fwCrv2, fwCrv3, fwCrv4);
-
- fwCrvs2 = list(
- (fwCrv4 * trans( vector( 0, 0, -1.0 ) ) ),
- (fwCrv3 * trans( vector( 0, 0, -0.4 ) ) ),
- (fwCrv2 * trans( vector( 0, 0, 0.4 ) ) ),
- (fwCrv1 * trans( vector( 0, 0, 1.0 ) ) )
- );
-
- frontWing1 = sfromcrvs(fwCrvs1,4);
- frontWing2 = sfromcrvs(fwCrvs2,4) * trans( vector(0.0, 0.0, -2.0) );
- frontWings = list(frontWing1, frontWing2);
-
-
- # back wings
-
- bkCrv1 = cbspline(3, list (
- vector( 2.2, 0.0, 0.0 ) ,
- vector( 2.4, 1.0, 0.0 ) ,
- vector( 2.6, 1.3, 0.0 ) ,
- vector( 3.0, 1.6, 0.0 ) ,
- vector( 4.2, 1.6, 0.0 ) ) , list(KV_OPEN));
-
- bkCrv2 = cbspline(3, list (
- vector( 2.2, 0.0, 0.3 ) ,
- vector( 2.4, 1.5, 0.3 ) ,
- vector( 2.6, 1.8, 0.3 ) ,
- vector( 3.0, 2.1, 0.3 ) ,
- vector( 4.2, 1.6, 0.3 ) ) , list(KV_OPEN));
-
- bkCrv3 = cbspline(3, list (
- vector( 2.2, 0.0, 0.7 ) ,
- vector( 2.4, 1.5, 0.7 ) ,
- vector( 2.6, 1.8, 0.7 ) ,
- vector( 3.0, 2.1, 0.7 ) ,
- vector( 4.2, 1.6, 0.7 ) ) , list(KV_OPEN));
-
- bkCrv4 = cbspline(3, list (
- vector( 2.2, 0.0, 1.0 ) ,
- vector( 2.4, 1.0, 1.0 ) ,
- vector( 2.6, 1.3, 1.0 ) ,
- vector( 3.0, 1.6, 1.0 ) ,
- vector( 4.2, 1.6, 1.0 ) ) , list(KV_OPEN));
-
-
-
-
- bkCrvs1 = list(bkCrv1, bkCrv2, bkCrv3, bkCrv4);
-
- bkCrvs2 = list(
- (bkCrv4 * trans( vector( 0, 0, -1.0 ) ) ),
- (bkCrv3 * trans( vector( 0, 0, -0.4 ) ) ),
- (bkCrv2 * trans( vector( 0, 0, 0.4 ) ) ),
- (bkCrv1 * trans( vector( 0, 0, 1.0 ) ) )
- );
-
- backWing1 = sfromcrvs(bkCrvs1,4);
- backWing2 = sfromcrvs(bkCrvs2,4) * trans( vector(0.0, 0.0, -2.0) );
- backWings = list(backWing1, backWing2);
-
- wings = list (frontWings, backWings);
-
- # wheels
-
- out = torus (
- vector( 0.0, 0.0, 0.0 ) , # center
- vector( 0.0, 0.0, 1.0 ) , # normal
- 1.6 , 0.7 );
-
- in = cylin (
- vector( 0.0, 0.0, 0.0 ) , # center
- vector( 0.0, 0.0, 0.6 ) , # direction
- 1.2 );
-
- in = in * trans( vector( 0,0,-0.3));
-
- wheel = list (in, out) ;
-
- attrib ( in, "rgb", "125,125,160" );
- attrib ( out, "rgb", "15,15,15" );
- attrib ( in, "reflect", 0.8);
- attrib ( out, "reflect", 0);
-
-
- wheel = wheel * scale( vector(0.42,0.42,0.60));
-
- wheel1 = wheel * trans( vector( -0.9, 0.0, -1.55 ) );
- wheel2 = wheel * trans( vector( -0.9, 0.0, 0.55 ) );
- wheel3 = wheel * trans( vector( 3.2, 0.0, -1.55 ) );
- wheel4 = wheel * trans( vector( 3.2, 0.0, 0.55 ) );
-
- wheels = list( wheel1, wheel2, wheel3, wheel4 );
-
-
-
- #back axle ( backAxle)
-
- bxShort = cylin (
- vector ( 3.3, 0.0, -0.5 ),
- vector ( -0.3, 0.0, 0.0 ),
- 0.2 );
-
- bxLong = cylin (
- vector ( 3.2, 0.0, 0.55 ),
- vector ( 0.0, 0.0, -2 ),
- 0.05 );
-
- bxUp = cylin (
- vector ( 3.2, 0.0, -0.5 ),
- vector ( -0.6, 0.7, 0.0 ),
- 0.055 );
-
- backAxle = list ( bxLong, bxShort, bxUp );
-
-
- # Front Axle
-
-
- # Front Triangle
-
- frTri = list (
- cylin (
- vector ( -2.1, 1.35, 0.4 ),
- vector ( 0.0, 0.0, -1.8 ),
- 0.09 ),
- cylin (
- vector ( -2.1, 1.35, 0.2 ),
- vector ( 1.1, -1.35, -0.5 ),
- 0.05 ),
- cylin (
- vector ( -2.1, 1.35, -1.2 ),
- vector ( 1.1, -1.35, 0.5 ),
- 0.05 ),
- cylin (
- vector ( -2.1, 1.35, -0.5 ),
- vector ( 1.1, -1.35, 0.0 ),
- 0.05 ),
- cylin (
- vector ( -2.1, 1.35, 0.2 ),
- vector ( 0.5, 0.15, -0.3 ),
- 0.05 ),
- cylin (
- vector ( -2.1, 1.35, -1.2 ),
- vector ( 0.5, 0.15, 0.3 ),
- 0.05 )
- );
-
- frAxle = list (
- cylin (
- vector ( -0.9, 0.0, 0.55 ),
- vector ( 0.0, 0.0, -2 ),
- 0.05 )
- );
-
-
- frontAxle = list ( frTri , frAxle);
-
-
- axles = list ( backAxle, frontAxle);
-
-
- # front light
-
- lightBox = box ( vector( 0.3, 2.5, -0.2 ), -1.3, -0.7, -0.6 );
-
- lightBulb = box ( vector( 0.3, 2.4, -0.3 ), -1.32, -0.4, -0.4 );
-
- attrib ( lightBox, "rgb", "150,150,150" );
- attrib ( lightBulb, "rgb", "200,200,10" );
-
- light = list (lightBox, lightBulb)
- * rotz( -15 ) * trans(vector(-0.21,0.05,0));
-
-
- attrib( light, "reflect", 0.9 );
-
- # steering
-
- strCirc = circle( vector(0,0,0), 0.04 );
-
- strShape1 = cbspline( 3,
- list (
- vector ( -0.4 , 2.6, -0.5 ) ,
- vector ( -0.3 , 2.9, -0.2 ) ,
- vector ( -0.15 , 3.2, 0.1 ) ,
- vector ( 0.0 , 3.5, 0.3 ) ,
- vector ( 0.0 , 3.55, 0.5 ) ,
- vector ( 0.05 , 3.6, 0.7 ) ,
- vector ( 0.1 , 3.6, 0.9 ) ),
- list ( KV_OPEN )
- );
-
- strShape2 = cbspline( 3,
- list (
- vector ( 0.1 , 3.6, -1.9 ) ,
- vector ( 0.05 , 3.6, -1.7 ) ,
- vector ( 0.0 , 3.55,-1.5 ) ,
- vector ( 0.0 , 3.5, -1.3 ) ,
- vector ( -0.15 , 3.2, -1.1 ) ,
- vector ( -0.3 , 2.9, -0.8 ) ,
- vector ( -0.4 , 2.6, -0.5 ) ) ,
- list ( KV_OPEN )
- );
-
- str1 = sweepsrf( strCirc, strShape1, OFF );
- str2 = sweepsrf ( strCirc, strShape2, OFF );
-
- steer = list ( str1, str2 );
-
- frontAcc = list ( light, steer );
-
-
- # back accessories
-
- # lowNet
-
- netCirc = circle( vector(0,0,0), 0.07 );
-
- netY = 2.0;
-
- netFrame = cbspline ( 3,
- list (
- vector ( 3.1, netY, -0.5 ) ,
- vector ( 3.1, netY, -1.1 ) ,
- vector ( 2.6, netY, -1.1 ) ,
- vector ( 2.6, netY, -2.0 ) ,
- vector ( 4.1, netY, -2.0 ) ,
- vector ( 4.1, netY, -1.1 ) ,
- vector ( 4.4, netY, -1.1 ) ,
- vector ( 4.4, netY, 0.1 ) ,
- vector ( 4.1, netY, 0.1 ) ,
- vector ( 4.1, netY, 1.0 ) ,
- vector ( 2.6, netY, 1.0 ) ,
- vector ( 2.6, netY, 0.1 ) ,
- vector ( 3.1, netY, 0.1 ) ,
- vector ( 3.1, netY, -0.5 )
- ),
- list ( KV_OPEN )
- );
-
- net = sweepsrf( netCirc, netFrame, OFF );
-
- lowBars = list (
- cylin (
- vector ( 2.9 , netY, -1.1 ) ,
- vector ( 1.25, 0.0, 0.0 ) ,
- 0.055
- ) ,
- cylin (
- vector ( 2.9 , netY, 0.1 ) ,
- vector ( 1.25, 0.0, 0.0 ) ,
- 0.055
- ) ,
- cylin (
- vector ( 3.6, netY, -2.0 ) ,
- vector ( 0.0, 0.0, 3.0 ) ,
- 0.055
- )
- );
-
- lowNet = list ( net, lowBars );
-
-
- # upper bars
-
- bigCirc = circle( vector(0,0,0), 0.065 );
-
- bigShape = cbspline ( 3 ,
- list (
- vector ( 2.63, 2.0, -1.7 ) ,
- vector ( 2.6, 3.0, -2.0 ) ,
- vector ( 4.1, 6.0, -1.6 ) ,
- vector ( 4.1, 6.0, -1.6 ) ,
- # vector ( 4.1, 6.0, -1.6 ) ,
- # vector ( 4.1, 6.0, 0.6 ) ,
- vector ( 4.1, 6.0, 0.6 ) ,
- vector ( 4.1, 6.0, 0.6 ) ,
- vector ( 2.6, 3.0, 1.0 ) ,
- vector ( 2.63, 2.0, 0.7 )
- ),
- list ( KV_OPEN )
- );
-
- bigBars = sweepsrf ( bigCirc, bigShape, OFF ) ;
-
- upperBars = list (
- cylin (
- vector ( 4.1 , 6.0, -1.5 ) ,
- vector ( 0.0 , -4.0, 0.0 ) ,
- 0.055
- ) ,
- cylin (
- vector ( 4.1, 6.0, 0.5 ) ,
- vector ( 0.0, -4.0, 0.0 ) ,
- 0.055
- ) ,
- cylin (
- vector ( 4.1 , 6.0, -1.0 ) ,
- vector ( 0.3 , -4.0, 0.0 ) ,
- 0.045
- ) ,
- cylin (
- vector ( 4.1, 6.0, 0.0 ) ,
- vector ( 0.3, -4.0, 0.0 ) ,
- 0.045
- )
- );
-
- upperNet = list ( upperBars, bigBars );
-
-
- backAcc = list ( lowNet, upperNet );
-
- accessories = list ( backAcc, frontAcc );
-
- # coloring !
-
- attrib ( seat, "rgb", "040,040,240" );
- attrib ( engine, "rgb", "40,45,40" );
- attrib ( axles, "rgb", "20,20,60" );
- attrib ( bottom, "rgb", "40,20,15" );
- attrib ( frontWings, "rgb", "150,150,150" );
- attrib ( backWings, "rgb", "140,140,140" );
- attrib ( steer, "rgb", "100,20,20" );
- attrib ( upperNet, "rgb", "0,0,60" );
- attrib ( lowNet, "rgb", "020,020,255" );
- attrib ( frontAxle, "rgb", "30,0,0" );
- attrib ( backAxle, "rgb", "30,0,0" );
-
-
- # assembling the complete ATV
-
- atv = list( accessories, axles, wheels, bottom, body, wings );
-
-
- viewstate("DblBuffer");
- view(list(atv),TRUE);
-
- # save("atv",atv);
-
-
-
-